﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using snat.util;

namespace snat.algorithms {

    /// <summary>
    /// Delegate type for events to be used to inform GUI the algorithm has a chart to output
    /// </summary>
    /// <param name="name">The algorithm that threw the event</param>
    public delegate void RenderChartDelegate(IAlgorithm algorithm);

    public interface IChartRenderable {

        /// <summary>
        /// Event which informs the GUI a chart is ready to be displayed
        /// </summary>
        event RenderChartDelegate RenderChart;

        /// <summary>
        /// Method which provides the GUI with a chart to display
        /// </summary>
        /// <returns>The chart to display on the GUI</returns>
        DataChart GetRenderableChart();
    }
}
